数学函数
max
max(X, Y)
返回X,Y中较大的值。
min
min(x,y)
返回X,Y中较小的值。
mid
mid(x,y,z)
返回X,Y,Z大小排列后中间的值。
ceil
ceil(x)
返回最接近x并且>=x的整数,也就是向上取整。
flr
flr(x)
返回最接近x并且<=x的整数,也就是向下取整。
sin/cos
sin(x),cos(x)
返回x的正弦/余弦函数值。 注意和math.sin/math.cos不同,这里根据屏幕坐标方向,y是反向的。
x是角度,对应屏幕上逆时针方向,整圆对应0..1。
例如最右边(0度)是0,最左边(180度)是0.5。
atan2
atan2(dx,dy)
根据dx,dy转换到一个角度(0..1)。
角度是对应屏幕逆时针方向。
atan2(0, -1) -- 0.25
sqrt
sqrt(x)
对x开根号,如果x<0,返回0。
abs
abs(x)
返回x的绝对值。
sgn
sgn(x)
返回x的符号,x<0返回-1,x>=0返回1。
band/bor/bxor/bnot/shl/shr/lshr/rotl/rotr
bit运算
band(X, Y) -- x&Y
bor(X, Y) -- x|y
bxor(X, Y) -- x^Y
bnot(X) -- ~X
shl(X, N) -- 左移,右边补0
shr(X, N) -- 算数右移,左边补符号位
lshr(X, N) -- 逻辑右移,左边补0
rotl(X, N) -- 循环左移
rotr(X, N) -- 循环右移
bit运算函数和bit运算符号有差异,函数在参数不合法时不会报异常,但是符号运算会直接抛出异常。
rnd
rnd(X)
返回一个随机数n,0 <= n < x。
注意,返回值不是整数,如果需要整数,使用flr(rnd(x))。
如果x是个数组,那么随机返回table[1]到table[#table]中的一个元素值。
srand
srand(X)
设置伪随机数种子,同样的种子会导致后面的随机序列相同。